times accessed since 2005/02/11
概要/主な特徴
コードをクリックするだけで簡単に伴奏できる
MIDI 楽器ソフトを Java で書いてみました。2004年5月頃に初公開して以来、
色々と機能追加していくうちに現在の形になりました。
♪よく使うコードが近接しているので簡単にコードを弾ける
ギターやキーボードなどでコード演奏していると、キー(調)によってよく使うコードが
大体決まっているのがわかるでしょう。
そうです。キーやコードには、下の図に示したような遠近関係があるのです。
コードの配列はドレミファソラシの順ではなく、
「ドの右がソ」の繰り返しによってできる
「ファドソレラミシ」(FCGDAEB)の順になっています。
一見不規則に見えるかも知れませんが、実はこれ、五度圏と同じ配列なのです。この配列には、よく使うコードがキーの周辺に
自然に集まるという性質があるので、自分が「今、出したい」と思った雰囲気を
そのままコードの動き方(コード進行)に反映しやすくなるのです。
一番上の行は五線の先頭につく#や♭の数を表した「調号ボタン」、2行目以下はコードを鳴らすための「コードボタン」です。
この並び順の発想は、すでにアコーディオンで取り入れられています。
アコーディオンでは、左手を使って弾く丸いコードボタンの横方向が上記と同じ順で並んでいます。
縦方向は C の下が Cm ではなく Am になっている点がアコーディオンと異なります。
左右の端のほうにみられる bb、x は、それぞれダブルフラットとダブルシャープを表します。
通常よく使われるコード(ダイアトニックコード)はピンク色のエリアに集まっています。
このエリアを集中的にクリックするだけで簡単に伴奏でき、ピンク色の中央(相対音階のド)へ
戻ると曲が終わったように聞こえます。
さらに、調号ボタンでキー(調)を選ぶと
背景色が左右にシフトするので、
どんなキーでも全く同じように弾くことができます。
クリックした場所でそのままマウスホイールを回せば
アルペジオ演奏もできるほか、
右クリック、修飾キー、ドラッグ、などの操作を組み合わせることで 7、-5、dim、aug などの
ついたコードにも対応しています。また、テキスト欄に直接コードネームを入力して [Enter] キーを押す
ことによってコードを鳴らすこともできます。
背景色が青色や黄色になっているコードは、曲の雰囲気を盛り上げたいところで一時的に使われます。
黄色いコードを使うと、ピンク色ではついていたはずの m が外れ、
予想外に明るいホットな雰囲気を出せます。
逆に、
青色のコードを使うと、ピンク色ではついていなかったはずの m がついて、
予想外に寂しいクールな雰囲気を出せます。
この色を見るだけで「今、こんな雰囲気を出したい!」と思ったその瞬間、雰囲気の出せそうなコードへ
素早くたどり着くことができるので、即興での伴奏も思いのままに楽しむことができます。
この延長で、オリジナル曲の作曲にも活用できることでしょう。
さらに
カポにも対応しているので、コード譜がカポ対応だった場合でも
オリジナルキーの音で演奏できます。
コードボタンにフォーカスを入れれば、PCのキーボードでコードを鳴らすこともできます。
♪キーボードでも演奏できる
画面上のキーボードをクリックしてメロディを演奏することもできます。
マウスだけでなく、PCのキーボードや、外部に接続したMIDIキーボードでも演奏できます。
出した音は画面上のキーボードで●印として現れます。
ピッチベンド(音程の一時的な変化)を受信すると●印が横に「びょ〜ん」と伸びます。
音程変化の感度(ピッチベンド・センシティビティ)の変更にも対応しているので、
どこまで音程が変化したかを視覚的に把握できます。
また、モジュレーションを受信すると●印が縦に伸び、まるで口を大きく開けて歌っているように見えます。
ぜひ一度、ピッチベンドとモジュレーションのレバーがついたMIDIキーボードをつないで試してみてください。
レバーの動きに合わせて●が伸縮します。
♪MIDIファイルの読み書きができる簡易シーケンサー
MIDI ファイルの読み込み、編集、リアルタイムレコーディング、保存もできるようになっています。
プレイリストも内蔵しているので複数の曲を連続演奏することができます。
また、再生スピードの変更(1/16倍速 〜 16倍速)も可能です。
Javaアプレットとして動かした場合、セキュリティのためローカルファイルを直接読み込めないので、
それに代わる方法として、Base64 エンコードされた MIDI データをテキストエリアを通じて
入出力するための機能(画面および JavaScript インターフェース)を備えています。
Base64 エンコード/デコードを行うだけの簡単な CGI プログラムを用意するだけで、
ブラウザに内蔵のファイルアップロード・ダウンロード用の選択ダイアログを使った
ローカルファイルの読み書きを実現できます。
オフラインでJava アプリケーションとして起動する場合は、
上記のような制限がないので、ローカルファイルの読み書きを MIDI Chord Helper で直接行うことが
可能になります(MIDI ファイルのドラッグ&ドロップにも対応しています)。
ドラッグ&ドロップで MIDI IN/OUT デバイスを自由につなぎ変える機能もついているので、
外付け MIDI キーボード、外付け音源はもちろん、MIDI Yoke
のような仮想 MIDI ポートドライバと組み合わせれば、他のシーケンスソフトの
MIDI IN のデバイスとして使うこともできます。
今まで面倒だったコードの入力も、MIDI Chord Helper があれば
コードをクリックしていくだけで簡単にリアルタイム入力できます。
♪テキスト移調機能・乱数による自動作曲機能
コード進行を | C | Am | F G | C | ...のようにテキストで入力して
MIDI データを生成したり、コード進行のテキストを移調することもできます。
特に、MIDI データの生成ではメロディが乱数によって自動的に生成されるほか、
[Randomize] ボタン一発でテンポ、拍子、コード進行を乱数で生成できるので、
その場で音楽を
自動作曲して鑑賞することもできます。
← 乱数で生成した歌詞を「初音ミク」に読み込ませて歌わせてみた例
[
YouTube版はこちら]
♪演奏するとコードが光る!しかも分数コードにも対応

再生を開始すると、その曲の調号の真下を中心に
□ ○ などの光る図形が動き回ります。
コードの構成音が欠けていた場合でも、図形の一部が光ります。
また、7 や M7 などのようにコードの構成音が多くなると複数の場所に図形が現れ、
どのコードの構成音をまるまる含んでいるか、といったことまでわかります。
例えば G7 を鳴らすと図のようになり、G と Bdim の構成音をまるまる含んでいることがわかります。
図形の色は、スケールを外れると変化します(#寄りは黄色、♭寄りは青)。
さらに、自動演奏時には選択中の
調号ボタンも光り、
リズムに合わせて徐々に消えるようになっています。
このように、音を色や図形として表示すれば、人間の本来持っている「アナログ的な感覚」を最大限に生かした、
柔軟なコード判定を行うことができるのです。単にコードネームを示すだけでなく、
調号とコードとの「位置関係」も見えるので、ドミナント、サブドミナントといったコードの役割や、
近くにあるコードの別候補もわかります。
ここかな?と思ったコードは、実際にクリックして鳴らせば、その場で簡単に確認できます。
ちなみに、Windows のメディアプレーヤでは、MP3 などのオーディオファイルでは画面に動く模様が出せますが、
MIDI ファイルのときは何も出ないので味気ないです。ならばいっそのこと、
MIDI ファイル用の起動アプリケーションを MIDI Chord Helper に設定してしまいましょう!
そうすれば、コード進行の光る姿を目で見ながら MIDI 演奏をより楽しく聴くことができます。

また、Dm7/G のような「分数コード」を検出しやすくするため、低い単音を太いアンダーバー _ で表示し、
ベース音が見えやすいようにしました。通常、ベース音の _ はコードの □ の中に入り込んで
一緒についていきますが、分数コードが鳴ると _ が □ の外に飛び出したりするので、すぐにわかります。
♪歌詞表示機能
MIDIファイルに歌詞が入っていれば、その歌詞も表示されます。
メタイベントの「歌詞」だけなく、単なる「テキスト」として歌詞が入っていた場合でも表示されます。
MIDIファイルの中には、コードネームがテキストとして入っているものもあります。
そのようなMIDIファイルを再生すると、□で示されるコードと、実際のテキストに入っているコードが
同期している様子を目で見て確かめられます。
♪コード耳コピのトレーニングにも
音楽を聴いていると、コードが「ほら、あの感じ...」という言葉にしづらい「
クオリア」となって心の中に残ります。これは大人だけでなく、子供も同じ。
あの頃に聞いたコード進行は皆さんの頭の中にも「クオリア」として残っているはずです。
この「クオリア」は、以下の2つを知ることで、コードネームに変換することができるのです。
- 曲のキー
- コードボタン上での背景色とその中の位置
曲のキーはコードボタンだけでは合わせにくいので、画面上のキーボードで「終止音」を探すことで
素早くキーを合わせられるようになっています(相対ドの場合は右クリック、相対ラの場合中クリック)。
キーさえわかれば、あとは「あの感じ」がどの背景色と位置に対応するのかを感じ取り、
そのコードボタンをクリックして聞き比べれば、しっくりくるコードが簡単にわかります。
絶対音感なんかなくても大丈夫!これはあくまで、楽器がないときにキーを特定できるという能力にすぎません。
耳コピ自体は相対音感さえあれば誰にだってできるんです。
♪ギターやウクレレなどでの押さえ方もわかる、演奏支援機能
楽器として使うだけでなく、他の楽器で弾きたいときのための演奏支援ツールとしても使えます。
ギターやウクレレで弾きたくなったときは「音の出るコードファインダー」として、
コードの押さえ方(コードダイアグラム)を
調べることもできます。
一般的なギターコード表ではアルファベット順になっているので、よく使うコードと
あまり使わないコードが交互に現れてしまいますが、五度圏配列のコードボタンから調べれば
曲の調号の近くだけに集中でき、あまり使わないコードに気を取られることもありません。
同じコードでも、弦の押さえ方は何通りも考えられます。
そこで MIDI Chord Helper ではコードの構成音が出せる箇所をとりあえず○印で全部表示します。
実際の押さえ方については、構成音の揃う組み合わせをくまなく探索したうえで、
その中から縦横のスクロールバーで選べるようにしてあります。
●の色はキーボードの●の色に合わせてあるので、鳴らす音階までも視覚的にわかります。
コードダイアグラムのほうにも、コードボタンと同じような
カポ対応機能がついています。
カポ対応でない(あるいはカポの位置が違う)コード譜を、
目的の位置のカポ対応に直したいときに便利です。
変則チューニングにも対応しているので、他の4弦/6弦楽器にも応用できます。
例えば、ずいぶん前に簡単な楽器として話題になった「
一五一会」だとどうなるか、といったことも調べられます。
♪MIDIファイルやコード譜のチェックツールとしても使える
- 制作したMIDIファイルのメタイベントのチェック
MIDIファイルには、音源に送られることのないデータ(メタイベント)として、
拍子、テンポ、調性、テキスト(歌詞やコードネームなどの文字データ)などの情報が入っています。
音源にとっては不要な情報であるため、通常のメディアプレーヤーで再生しただけでは存在に気づきません。
しかし、このメタイベントは楽譜として出力する場合には必要不可欠なものです。
メタイベントが実際の演奏内容とずれていると、楽譜の表示に影響が出ます。
MIDI Chord Helper で再生すれば、メタイベントと実際の演奏との間で、
変化のタイミングが合っているかどうかをビジュアルにチェックできます。
例えば、調性変更のメタイベントによって調号ボタンが自動的に選択されたとき、
その調号の真下を中心にコードの図形が動き回っているかどうかを見るだけで、
調性の設定にズレがないかどうかを検証できます。さらに、調号ボタンの□が消えていくタイミングと
実際に聴いた曲のリズムとを比べれば、テンポや拍子にズレがないかどうかを検証できます。
- コード譜のチェック
コードネームを書き間違えてしまっても、実際に楽器で鳴らしてみるまで気づかないことがあります。
MIDI Chord Helper なら簡単にコードを鳴らせるので、実際に音を出しながら、
しかもコードの光り方を見たうえで違和感がないかどうかを確かめられます。
また、コードの別候補を探すのも簡単です。似た雰囲気のコードは、たいてい近くにあって、
似た形をしていることが多いです。
- コードダイアグラムのチェック
コードダイアグラムを書き間違えていないかチェックするのにも使えます。
MIDI Chord Helper でコードダイアグラムを表示させると、○や●が構成音で色分けされるので、
その構成音と一緒に人間の目でチェックできます。
Windows 以外でもブラウザなしでも使える
Java の実行環境と MIDI 音源さえ整っていれば、Windows 以外の OS(Linux など)でも動かせます。
また、ブラウザの中に貼り付けて使う「
Java アプレット」としてだけでなく、ブラウザなしで動作する「
Java アプリケーション」としても使えます。(
→ ダウンロード方法などの詳細)
利用条件
- MIDI Chord Helper はフリーソフトウェアです。ソースも公開しておりますが、もし修正して使う際は著作権表示を必ず残してください。
- 一般のフリーソフトと違い、マニュアルなどのドキュメントの修正タイミングは、
アプレットをバージョンアップするタイミングと必ずしも同じであるとは限りません。
- MIDI Chord Helper は無保証です。アプレットやソース、ドキュメント(マニュアルなど)を使ったことによる
不利益については一切の責任を負いません。とはいえ、自分自身もこのソフトを使っていますし、
自分で使うのに困るようなバグを発見したときは、早めに直してリリースするようにはしています。
リンクについて
リンクはご自由にどうぞ(メッセージボードまたはメールでお知らせいただけるとうれしいです)。
リンクバナーを作りましたので、当ページへのリンクの際、ダウンロードしてお使いください。
ホームページ素材としても活用できます
貼り付け方の詳細については
こちらを参照してください。
メールやメッセージボードでお知らせいただければ幸いです。
MIDI Chord Helper - since May 2004
Copyright (C) 2004-2017 @きよし - Akiyoshi Kamide [作者のプロフィール]

(旧・五度圏コード表付きJavaピアノ - Java piano with circle-of-fifths chord table)
[
ページ先頭へ戻る]